
package com.syu.loopcure.compensator.interfaces;


import com.syu.loopcure.compensator.model.CompensatorInfoModel;

/**
 * ClassName: ICompensator <br/>   
 * date: 2020年8月11日 下午2:31:40 <br/>  
 *  
 * @author zhucun
 * @since JDK 1.8  
 */
public interface ICompensator {
	
	/**
	 * 
	 * obtainCompensatorInfo:得到补偿model对象. <br/>  
	 *
	 * @return  {@link CompensatorInfoModel}
	 * @since JDK 1.8  
	 * @author zhucun  
	 * @date 2020年8月11日 下午3:22:41
	 * @modifier zhucun
	 * @modifyDate 2020年8月11日 下午3:22:41
	 */
	CompensatorInfoModel obtainCompensatorInfo();
	
	/**
	 * 
	 * getBean:获取 Bean，自动转型成所赋值对象的类型. <br/>  
	 *  
	 * @param clazz 类
	 * @return  泛型
	 * @since JDK 1.8  
	 * @author zhucun  
	 * @date 2020年8月11日 下午5:05:52
	 * @modifier zhucun
	 * @modifyDate 2020年8月11日 下午5:05:52
	 */
	<T> T getBean(Class<T> clazz);
	
	/**
	 * 
	 * updateInfoBeforeExecuteMethodByMd5Code:方法执行前更新数据，譬如执行开始时间. <br/>  
	 *  
	 * @param compensatorInfoModel  补偿对象实体
	 * @since JDK 1.8  
	 * @author zhucun  
	 * @date 2020年8月13日 下午2:56:23
	 * @modifier zhucun
	 * @modifyDate 2020年8月13日 下午2:56:23
	 */
	void updateInfoBeforeExecuteMethodByMd5Code(CompensatorInfoModel compensatorInfoModel);
	
	/**  
	 * successUpdateInfoByMd5Code:通过md5Code更新数据. <br/>  
	 *  
	 * @param compensatorInfoModel  补偿对象实体
	 * @since JDK 1.8  
	 * @author zhucun  
	 * @date 2020年8月13日 下午2:03:44
	 * @modifier zhucun
	 * @modifyDate 2020年8月13日 下午2:03:44
	 */
	void successUpdateInfoByMd5Code(CompensatorInfoModel compensatorInfoModel);
}
  
